home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
data
/
dora
/
doraupld.plp
< prev
next >
Wrap
Text File
|
1995-08-14
|
21KB
|
789 lines
/* 制御ファイルの内容に従って自動アップロードする */
/* アップロード制御ファイルの有無の判定処理 */
%AUTOUPLD{
footnote({アップロード制御ファイル指定の有無を判定しています});
case (@filechk(UP2|{doraup.ctl}),
{Yes},
{
footnote({自動アップロードを開始します});
AUTOup(UP2|{doraup.ctl});
footnote({自動アップロードを終了しました});
delfile(UP2|{doraup.bak});
renname(UP2|{doraup.ctl},{doraup.bak});
case (@filechk(UP2|{doraup.rsv}),
{Yes},
{renname(UP2|{doraup.rsv},{doraup.ctl})}
);
});
};
/* アップ先の振り分け */
%AUTOup1{case (@head(linebuf,{=}),
{forum},
{var FILE [256];
FILE:=@head(@body(linebuf,{file=},{;}),{;});
loop ({
case (@head(FILE,{,})<>{},
{Yes},
{FORUMup(
@head(@body(linebuf,{forum=},{;}),{;}),
@head(@body(linebuf,{mes=},{;}),{;}),
@head(@body(linebuf,{reply=},{;}),{;}),
@body(linebuf,{title=},{\n}),
@UPtext(@head(FILE,{,})))
});
FILE:=@body(FILE,{,});im(FILE<>{});
});
im({Yes});
},
{benon},
{
var FILE [256];
FILE:=@head(@body(linebuf,{file=},{;}),{;});
loop ({
case(@head(FILE,{,})<>{},
{Yes},
{BENONup (
@head(@body(linebuf,{benon=},{;}),{;}),
@UPtext(@head(FILE,{,}))
)
});
FILE:=@body(FILE,{,});im(FILE<>{});
});
im({Yes});
},
{mail},
{
var FILE [256];
FILE:=@head(@body(linebuf,{file=},{;}),{;});
loop ({
case(@head(FILE,{,})<>{},
{Yes},
{MAILup (
@head(@body(linebuf,{mail=},{;}),{;}),
@body(linebuf,{title=},{\n}),
@UPtext(@head(FILE,{,}))
)
});
FILE:=@body(FILE,{,});im(FILE<>{});
});
im({Yes});
},
{bmail},
{
var FILE [256];
FILE:=@head(@body(linebuf,{file=},{;}),{;});
loop ({
case (@head(FILE,{,})<>{} && BINop<>{},
{Yes},
{
BMAILup(@head(@body(linebuf,{bmail=},{;}),{;}),
@head(@body(linebuf,{comnt=},{;}),{;}),
@body(linebuf,{title=},{\n}),
@UPtext(@tail(linebuf,{docfile=},{;})),
@head(FILE,{,}))
});
FILE:=@body(FILE,{,});
im(FILE<>{});
});
im({Yes});
},
{profile},
{PROFup(@UPtext(@tail(linebuf,{file=},{;})));im({Yes})
},
{whomemo}, /*書き込みメモをアップ */
{MEMOup(@UPtext(@tail(linebuf,{file=},{;})));im({Yes})
},
{forumlib},
{var FILE [256];
FILE:=@tail(linebuf,{datafile=},{;});
loop ({case (@head(FILE,{,})<>{},
{Yes},
{DLIBup(
@tail(linebuf,{forumlib=},{;}),
@tail(linebuf,{libno=},{;}),
@tail(linebuf,{dataname=},{;}),
@tail(linebuf,{keyword=},{;}),
@tail(linebuf,{datatype=},{;}),
@UPtext(@tail(linebuf,{docfile=},{;})),
@UPtext(@head(FILE,{,})))
});
FILE:=@body(FILE,{,});im(FILE<>{});
});
im({Yes});
},
{},{im({No})}, /* 空文字列なら終了 */
,{im({Yes})} /* それ以外なら次の行を読む */
);
};
%AUTOup {[file]
case (@filechk(file),
{Yes},
{delfile(UP2|{doraup.rsv});
line:=0;
loop ({
line:=line+1;
linebuf:=@read(file,line,1);
case (@getchar(linebuf,1,5),
{保留;},
{write(UP2|{doraup.rsv},linebuf);im({Yes})},
,{AUTOup1;wait(3);
/*爆裂未処理IDは予約に再登録*/ case (IDbak<>{},
{Yes},
{linebuf:={benon=}|IDbak|{;file=}|
@head(@body(linebuf,{file=},{;}),{;})|
{;\n};
/* 未処理IDをデフォルトにする */ IDbak:={};
write(UP2|{doraup.rsv},linebuf)},,
);
},
);
});
},
{No},
{
SNDMSG({okasi_f.snd});
display({\n}|file|{制御ファイルがありません\n});
});
};
/* アップロードするテキストファイル名を決定する */
%UPtext{[fname]
case (fname<>{},
{Yes},
{case (@filechk(fname),
{Yes},{im(fname)},
{No},
{
SNDMSG({okasi_f.snd});
display(fname|{がありません\n});
im({});
});
},,{im({})}
)
};
/* プロンプト終了待ち共通処理 */
%PROwait1{
wait (Wtime5,
,{60},
,{\nNO CARRIER},{AbortOff({\nホストの回線が切れちゃった~\n})}
,{これでよろしいですか?},{type({\n})}
);
wait(3,{send(text)},{1|},{send(text)});
type({\n//\n});
PROwait2
};
%PROwait2{
loop ({
wait(3,{im({Yes})},
{write},{WaitMK;type({W\n});im({No})},
{,?,0},{WaitMK;type({0|W\n});im({No})},
{ヘルプ 表示},{WaitMK;type({0|W\n});im({No})},
{作成終了},{WaitMK;type({0|W\n});im({No})},
{編集終了},{WaitMK;type({0|W\n});im({No})},
{おわり},{WaitMK;type({0|W\n});im({No})},
{自動署名を},
{WaitMK;type({N|0|W\n});im({No})}
);
});
loop ({
wait (3,{type({\n});im({Yes})},
{/N},{
case (@filechk(docfile),
{Yes},
{CHeck:={No};WaitMK;type({Y\n});
wait(Wtime2,{AbortOff({ホストがおもいよ~\n})},
{60},{},
{>},{type({N\n});wait(Wtime2,,{60},{})
});
case (docfile,{},,,{send(docfile)});
type({\n//\n});
loop ({
wait (3,{im({Yes})},
{quit},
{WaitMK;type({W\n});im({No})},
{,?,0},
{WaitMK;type({0|W\n});im({No})},
{/N) >},
{type({N|0|W\n});im({No})})
});
},
{No},{type({N|0|Q\n})})
},
{ヘルプ 表示},{type({0\n})},
{>},{type({0|Q\n});
wait(3,,{,?,O},{}
,{ヘルプ 表示},{}
,{[N]},{type({\n})});im({No})}
);
});
case(aftLOG,{Yes},{delfile(text)});
};
%PROwait3{
loop ({
wait(3,{im({Yes})},
{[RET]},{WaitMK;type({\n});im({No})},
{,\,#,?,0},{WaitMKtype({0|0|Y\n});im({No})},
{0:quit},{WaitMK;type({0|Y\n});im({No})}
);retMAIN
});
};
/* ボードNo.を指定してメッセージをアップする */
%FORUMup{
[forum,mesno,replyto,title,text]
var reply [5]; reply:=replyto;
case (reply<1||reply>9999||reply={},
{No},
{
footnote(forum|{のボードNo.}|mesno|{番のNo.}|reply|{にコメントします});
case (forum=NET,
{Yes},{type({B#}|mesno|{|R|}|reply|{|}|title);type({\n})},
{No},
{type({B#}|mesno|{|}|forum|{|R|}|reply|{|}|title);type({\n})}
);CHKcom1;
},
{Yes},
{
footnote(forum|{のボードNo.}|mesno|{番にアップロードします});
case (forum=NET,
{Yes},{type({B#}|mesno|{|E|}|title);type({\n})},
{No},{type({B#}|mesno|{|}|forum|{|E|}|title);type({\n})}
);CHKcom1;
})};
%CHKcom1{
wait(Wtime2,
,{値が大きすぎ},{PROwait3}
,{指定が間違って},{PROwait3}
,{使用でき},{WaitMK;type({Q\n})}
,{SELECT},{WaitMK;type({Q\n})}
,{BOARD},{WaitMK;type({0|Q\n})}
,{パスワードが違},{WaitMK;type({Q\n})}
,{,?,0},{WaitMK;type({N\n});PROwait1}
,{既にこのメッセージにはレスポンスが有ります},
{WaitMK;type({E|}|title);type({\n});type({Y|N\n});PROwait1}
,{[Y]},{WaitMK;type({Y|N\n});PROwait1}
);
};
/* アクセスユーザーの確認 & 爆裂トーク攻撃 */
%BENONup{
[sendto,text]
/* 爆裂トーク前処理 */
%preBenon{
var WhoRes[1200];
WhoRes:=@read(TEMP2|{_whotext.tmp});IDbak:={};
%ckWho{[BID,Bfil]
var n[2]; n:={0};
%p @case(@getchar(ID,1,3)={YAG},{Yes},{im({2})},{No},{im({})});
loop ({ n:=n+1;
%a @getline(WhoRes,n,1);
case (a={},
{Yes},{im({No})},,
{
case (@strip(@getchar(a,6-p,8))
=@strip(@getchar(BID,1,8)),
{Yes},
{
footnote(BID|{を攻撃します});
sendBenon(@getchar(a,4-p,1),@getchar(a,15-p,8),Bfil)
},
{No},{footnote({取得データの}|n|
{行目を確認中});im({Yes})}
)
});
});
};
footnote(sendto|{に爆裂トーク攻撃をします});
IDlist:=sendto;
loop ({
ckWho(@head(IDlist,{,}),text);
IDlist:=@body(IDlist,{,});
case (IDlist={},
{Yes},{im({No})},
{No},{im({Yes})}
);
});
};
/* 爆裂トーク処理 */
%sendBenon{[chNo,HanDle,DenPou]
flyline({1});wait(1);type({T\n});
loop ({
wait (3,{im({Yes})},
{チャンネルを指定して下さい}
,{type(chNo|{\n});im({Yes})},
{書き込み中なので送れない}
,{im({No})},
{トークモードに入りました。}
,{
%nowhh @getchar(@daylong,16,2);
case (4>=nowhh || nowhh>18,
{Yes},{type({今晩は、}|HanDle|{さん!\n})},
{No},{
case (10>=nowhh && nowhh>4,
{Yes},{type({お早ようございます、}
|HanDle|{さん!\n})},
{No},{case (18>=nowhh && nowhh>10,
{Yes},{type({今日は、}
|HanDle|{さん!\n})}
);
});
});
DOWNSTOP;send(DenPou);
case(HanDLe={},{No},{type({\n爆裂トーク BY }|HanDLe|{!\n})},,);
type({\n//\n});im({Yes})
},
{トークモードを終了しました。},{im({Yes})},
{,?,0},{im({No})},
{メイン},{im({No})},
{メイン},{im({No})},
{MAIN},{im({No})}
)
});
};
DOWNCHECK;delfile(TEMP2|{_whotext.tmp});receive(TEMP2|{_whotext.tmp});
WaitMKD;type({W\n});
footnote({現在}|NET|{-NETにアクセス中のユーザーを確認します});
preRetM;DOWNSTART;
loop ({
wait (3,{type({\n});im({Yes})}
,{Ch},{footnote({OK!OK!OK!OK!OK!・・・・・});im({No})}
)
});
case (ESCon={No},
{No},{dispoff(!DEBUG);command(CDIR2|{escctr -d}|TEMP2|{ -K}|
TEMP2|{ }|TEMP2|{_whotext.tmp});dispoff({No})
},,
);
case (text={},
{Yes},{footnote({爆裂トーク文章が未設定です})},
{No},
{case (@filechk(TEMP2|{_whotext.tmp})={},
{Yes},
{
display({アクセスデータの読み込みに失敗しました});
footnote({アクセスデータの読み込みに失敗しました})},
{No},{
wait(2); /* ホストとのタイムラグ調整 */
footnote({爆裂トーク処理をします});preBenon}
)
})
};
/* メールをアップする */
%MAILup{[sendto,title,text]
%MUP1 {[MID]
footnote(MID|{へメールを送ります});
type({ME|}|MID|{|}|title|{\n});
type({\n});
wait(Wtime2,,
{[Y]},{type({Y|N\n});footnote({メール送信中});
wait(Wtime2,,{60},{});
case(text,{},,,{send(text)});
type({\n//\n});
PROwait2},
{IDの指定が}
,{wait(Wtime2,,{quit},{type({0|0|Q\n});wait(3)})},
{quit},{type({\n})})
};
%MUP2 {
var End[3];End:={No};
type({MTE\n});
loop ({%IDmail @head(IDbak,{,});
case (IDmail<>{},
{Yes},{footnote(IDmail|{へメールを送ります})});
wait (3,{im({Yes})},
{タイトル},{WaitMK;type(title|{\n});im({No})},
{IDは?}
,{
case (IDmail<>{},
{Yes},
{type(IDmail|{\n});
IDbak:=@body(IDbak,{,});im({Yes})},
{No},
{
case (End,
{No},{type({0\n});End:={Yes};
im({Yes})},
{Yes},{im({Yes})
});
});
})
});
wait(Wtime2,,
{[Y]},{type({Y|N\n});footnote({メール送信中});
wait(Wtime2,,{60},{});
case(text,{},,,{send(text)});
type({\n//\n});
PROwait2},
{IDの指定が}
,{wait (Wtime2,,
{Q:Quit},{type({Q\n})},
{quit},{type({0|0|Q\n})}
);
wait(3)},
{Q:Quit},{type({Q\n})},
{quit},{type({\n})})
};
IDbak:=@im(sendto|{,});
case (@getchar(ID,1,3),
{DIG},{MUP2},
,{
loop ({
MUP1(@head(IDbak,{,}));
IDbak:=@body(IDbak,{,});
case (IDbak={},
{Yes},{im({No})},
{No},{im({Yes})}
);
});
});
};
/* バイナリメールをアップする */
/*バイナリメールをアップする前処理*/
%BMAILup{
[sendto,BmalCm,title,docfile,file]
case (sendto<>{} && @filechk(file),
{No},{SKIP},
{Yes},
{WaitMK;type(BINop|{\n});type({\n});
loop ({
wait(5,{type({\n});im({Yes})},
{[36mMAIL},{WaitMK;type({B\n});
preBMUP(sendto,BmalCm,title,docfile,file)},
{\nMAIL},{WaitMK;type({B\n});
preBMUP(sendto,BmalCm,title,docfile,file)},
{BMAIL},{WaitMK;type({U\n});
preBMUP(sendto,BmalCm,title,docfile,file)},
{BINMAIL},{WaitMK;type({U\n});
preBMUP(sendto,BmalCm,title,docfile,file)},
{BINARYMAIL},{WaitMK;type({E\n});
preBMUP(sendto,BmalCm,title,docfile,file)});
});
});
};
/*ネットのコメント判定とファイル名と送付先IDの処理*/
%preBMUP{[sendto,BmalCm,title,docfile,file]
var ComtB[40];ComtB:=BmalCm;
case (DEBUG,{Yes},
{display({file=}|file|{です\n});
});
var End[3];End:={No};
Bmailmode:={Yes}; /* ファイルボードへのアップとの処理を区別 */
IDbak:=@im(sendto|{,});
loop ({%IDbmail @head(IDbak,{,});
case (IDbmail<>{},
{Yes},{footnote(IDbmail|{へBメールを送ります})});
wait (3,{im({Yes})},
{タイトル},
{type(title);type({\n});
wait(Wtime2,{type({\n})},{[Y]},{type({\n});});
wait(Wtime2,{type({N\n})},{?,0},{type({N\n})});
wait(Wtime2,,{60},{});
case (@filechk(docfile),
{No},
{type({バイナリーメール}|title|{を送付します});
type({\n//\n})},
{Yes},
{CHeck:={No};
type({Y|N\n});
wait(Wtime2,{AbortOff({ホストがおもいよ~\n})}
,{1},{},{2},{}
,{60},{});
case (docfile,{},,,{send(docfile)});
type({\n//\n});
});
wait (3,{type({0\n})},{?,0},{type({0\n})});
im({Yes})
},
{ファイル名}
,{WaitMK;type(title);type({\n});
wait (3,,
{Comment},{type( ComtB|{\n});ComtB:={}},
{ID},
{type(IDbmail|{\n});
IDbak:=@body(IDbak,{,});
wait(3,,{タイトル},{type(ComtB|{\n})});
wait(Wtime2,{type({\n})},{[Y]},{type({\n})});
});
im({No})},
{ID}
,{
case (IDbmail<>{},
{Yes},
{wait(3,,{ID},);type(IDbmail|{\n});
IDbak:=@body(IDbak,{,});
im({Yes})},
{No},
{
case (End,
{No},{type({0\n});End:={Yes};im({Yes})},
{Yes},{im({Yes})
});
});
})
});
loop ({
wait(3,{type({\n});im({Yes})},
{ファイルの説明を},{im({Yes})},
{Comment},
{case (ComtB={},
{Yes},{wait (3,,{Comment},{type(ComtB|{\n})})
});
im({Yes})},
{UPLOAD}
,{WaitMK;type(binop|{\n});sento(docfile,file);im({Yes})},
{Protocol}
,{WaitMK;type(binop|{\n});sento(docfile,file);im({Yes})},
{Q:Quit},{type({Q\n});im({Yes})},
{0:quit},{type({0\n});im({Yes})},
{,?,0},{type({0\n});im({Yes})},
{,?,P,0},{type({0\n});im({Yes})},
{既に存在},{WaitMK;otto;im({Yes})},
{ヘルプ 表示},{im({No})},
{してねっ☆},{im({No})},
{MAIN},{im({No})});
});
};
/* プロフィール情報をアップする */
%PROFup{[text]
footnote(ID|{のプロフィール情報を登録します});type({P|W|N\n});
wait(Wtime2,{AbortOff({\nホストがおもいよ~\n})},{60},{});
case(text,{},,,{send(text)});type({\n//\n});
PROwait2;
};
/* メモ書き込み情報をアップする */
%MEMOup{[text]
footnote({メモ書き込み情報に}|@read(text)|{を登録します});wait(2);
type({\\\n});
wait(Wtime2,{type(@read(text))}
,{ください},{WaitMK;type(@read(text))}
,{[RET]},{WaitMK;type(@read(text))});type({\n});wait(2)
};
/*アップレート計算処理*/
%RTuptime{[datafile]
%timePS @linetime-timeP-2;
%rate Fsize/timePS;
%date @getdt;
display({\n}|Fsize|{バイトアップするのに}|timePS|
{秒くらいかかりました。約}|rate|{byte/sec。\n});
case (@filechk(LOG2|{アクセスdat\upldrate.dat}),
{No},
{write(LOG2|{アクセスdat\upldrate.dat},
{日付 時刻 ファイル名 サイズ}|
{ 時間 byte/sec 通信速度 電話番号\n})}
);
%name @SPP(@body(@tail(datafile,{\}),,{.}),8,1)|{.}|
@tail(@tail(datafile,{\}),{.});
write(LOG2|{アクセスdat\upldrate.dat},
@getchar(date,3,8)|{ }|
@getchar(date,17,5)|{ }|
name|
@SPP(Fsize,7,)|@SPP(timePS,5,)|{秒}|
@SPP(rate,4,)|{ }|
@SPP(@tail(sROAD,{/}),6,)|{bps }|
@head(sROAD,{/})|{\n});
SNDMSG({owata_f.snd});
};
/* エラー処理 */
%otto2 {SNDMSG({okasi_f.snd});wait(2);
write(UP2|{doraup.rsv},{保留;}|linebuf);
display({\n☆ファイル名に日本語が入っているとホストが受け付け}|
{てくれないorこのファイルは既に存在している}|
{様です、次の処理を行います\n});type({\n});
};
%otto {SNDMSG({okasi_f.snd});wait(2);
write(UP2|{doraup.rsv},{保留;}|linebuf);
display({\n☆ライブラリ番号が違う or ファイル名が重複して}|
{いる or ファイル名に日本語が入っているとホストが}|
{受け付けてくれない の為、次の処理を行います\n});
loop ({
wait(3,{type({\n});im({Yes})},
{0:quit},{type({0\n});im({Yes})},
{,?,0},{type({0\n});im({Yes})},
{Q:Quit},{type({Q\n});im({Yes})},
{,Q},{type({Q\n});im({Yes})},
{ヘルプ 表示},{im({No})},
{してねっ☆},{im({No})},
{MAIN},{im({No})})
})
};
/* データライブラリとBメールをアップ */
%sentoY{var N[1];N:=0;
loop ({
case (N,
{1},{type({\n});type({\n})},
{2},{type({\n});type({\n});display({変だぞ\n})},
{3},{type(CTRX|CTRX|{\n});display({送信失敗かな\n})},
{4},{type(CTRX|CTRX|{\n})},
{5},{type(CTRX|CTRX|{\n})},
{8},{AbortOff({\nホストの反応が無いよ~\n})});
wait (7,{N:=N+1;type({\n});im({Yes})}
,{に失敗},
{footnote({m(_._)m ペコリ>ユーザー様});im({No});
write(UP2|{doraup.rsv},{保留;}|linebuf);type({\n})}
,{に成功},
{footnote({アップロードを終了しました。});
RTuptime(datafile);im({No})}
,{しました},
{footnote({アップロードを終了しました。});
RTuptime(datafile);im({No})}
,{ファイル},
{footnote({アップロードを終了しました。});
RTuptime(datafile);im({No})}
,{?,0},
{footnote({アップロードを終了しました。});
RTuptime(datafile);type({\n});im({No})}
,{MAIL},
{footnote({アップロードを終了しました。});
RTuptime(datafile);type({\n});im({No})}
,{FILE},
{footnote({アップロードを終了しました。});
RTuptime(datafile);im({No})})
});
loop ({
wait (10,{type({\n});im({Yes})},
{補足説明を},{DocFile;im({Yes})},
{0:quit},{WaitMK;type({0\n});im({Yes})},
{W:write},{WaitMK;type({W\n});im({Yes})},
{,0},{wait(2);type({0|Q\n});im({No})}
);
});preRetM
};
%sento{[docfile,datafile]
%size @case (@filechk(datafile),
{Yes},{im(@fileleng(datafile))},
{No},{im(0)});
%Fsize @SPP(size,7,);
var timeP[10];
timeP:=@linetime;
case (Bmailmode={Yes},
{Yes},{},
{No},{wait(3,,
{で止める},{},{で中断},{})
});
wait(WtimeU); /* ホストが受信準備出来るまで待つ */
SENDbin(datafile);sentoY;
};
%DocFile{
case (@filechk(docfile),
{Yes},
{CHeck:={No};
type({Y|N\n});
wait(Wtime2,{AbortOff({ホストがおもいよ~\n})},{60},{});
case (docfile,{},,,{send(docfile)});
type({\n//\n});
loop ({
wait (3,{im({Yes})},
{quit},{WaitMK;type({W\n});im({No})},
{,?,0},{WaitMK;type({0|W\n});im({No})},
{/N) >},{type({N|0|W\n});im({No})})
});
},
{No},{type({N\n})}
);
};
%LIBup1{[forumlib,libno,dataname,keyword,datatype,docfile,datafile]
var timeP[10];
Bmailmode:={No}; /* ファイルボードへのアップとの処理を区別 */
/* アップスルDATAの説明文を書込む処理 */
%KMF94 {
case (@filechk(docfile),
{Yes},
{CHeck:={No};WaitMK;type({N\n});
wait(Wtime2,{AbortOff({ホストがおもいよ~\n})},{60},{});
case (docfile,{},,,{send(docfile)});
type({\n//\n});
loop ({
wait (3,{im({Yes})},
{quit},{WaitMK;type({W\n});im({No})},
{,?,0},{WaitMK;type({0|W\n});im({No})},
{/N) >},{type({N|0|W\n});im({No})})
});
},
{No},{type({0|0|N\n});
wait(Wtime2,{type({0\n})},{0:quit},{type({W\n})});}
);
wait (Wtime2,,
{Protocol},
{WaitMK;
case (datatype,
{TXT},
{type({T|N\n});
wait(Wtime2,{AbortOff({ホストがおもいよ~\n})},
{60},{});
case (datafile,{},,,{send(datafile)});
type({\n//\n});PROwait2
},
,{type(binop|{\n});sento(docfile,datafile)})
});
};
%TYPEyn{
DocFile;
wait (Wtime2,,
{Protocol},
{WaitMK;
case (datatype,
{TXT},
{type({T|N\n});
wait(Wtime2,{AbortOff({ホストがおもいよ~\n})},
{60},{});
case (datafile,{},,,{send(datafile)});
type({\n//\n});PROwait2
},
,{type(binop|{\n});sento(docfile,datafile)})
});
};
/* 公開ボード と CUGボードとの区別 */
%TYPEname{
case (forumlib=NET,
{Yes},{type({F#}|libno|{|U|}|dataname|{|}
|keyword|{\n})},
{No},{type({F#}|libno|{|}|forumlib|{|U|}|dataname|
{|}|keyword|{\n})}
);
};
type({\n});
wait(Wtime2,{AbortOff({ホストの反応が鈍いよぉ~\n})}
,{>},{TYPEname}
,{,?,},{TYPEname});
wait(Wtime2,
,{/N) >},{TYPEyn}
,{[N]},{TYPEyn}
,{Protocol},
{WaitMK;
case (datatype,
{TXT},
{type({T|N\n});
wait(Wtime2,{AbortOff({ホストがおもいよ~\n})},{60},{});
case (datafile,{},,,{send(datafile)});
type({\n//\n});PROwait2},
,{WaitMK;type(binop|{\n});sento(docfile,datafile)})
}
,{ラインエディタを起動しました},{KMF94}
,{ファイル名を入力して},{otto}
,{そのファイルは既に存在},{otto}
,{ボードが見つか},{otto}
,{ボードの指定が違},{otto}
,{パスワードが違},{otto})
};
%DLIBup{[forumlib,libno,dataname,keyword,datatype,docfile,datafile]
case (forumlib<>{} && dataname<>{} && keyword<>{}
&& datatype<>{} && @filechk(datafile),
{Yes},
{footnote(forumlib|{の}|libno|
{番ライブラリにアップロードします});
LIBup1(forumlib,libno,dataname,
keyword,datatype,docfile,datafile)
},
{No},
{display({必要なデータが揃っていないため}|
{次の処理へスキップします\n});
write(UP2|{doraup.rsv},{保留;}|linebuf);
})
};
var Bmailmode[3];
var line[3];
var linebuf[258];
var IDbak[500]; /* 爆裂トーク & メールup未処理IDリスト */
DOWNSTOP;AUTOUPLD;DOWNSTART;